package com.qf.common.core.util;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * @author GaoQiangLiang
 */
public class BlacklistCache {

    private static final Map<String, Long> blacklist = new HashMap<>();

    /**
     * 添加 token 到黑名单中
     *
     * @param token 要添加的 token
     * @param expiration 过期时间
     */
    public static void add(String token, Date expiration) {
        // 存储 token 及其过期时间戳
        blacklist.put(token, expiration.getTime());
    }

    /**
     * 判断 token 是否在黑名单中
     *
     * @param token 要判断的 token
     * @return true 表示 token 在黑名单中，false 表示 token 不在黑名单中
     */
    public static boolean contains(String token) {
        if (blacklist.containsKey(token)) {
            long expiration = blacklist.get(token);
            if (System.currentTimeMillis() < expiration) {
                return true;
            } else {
                // 如果已过期则移除
                blacklist.remove(token);
            }
        }
        return false;
    }
}
